[INFO] fetching crate rusty-variation 0.1.0...
[INFO] fixing rusty-variation-0.1.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate rusty-variation 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate rusty-variation 0.1.0
[INFO] finished tweaking crates.io crate rusty-variation 0.1.0
[INFO] tweaked toml for crates.io crate rusty-variation 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rusty-variation 0.1.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 11 packages to latest compatible versions
[INFO] [stderr]       Adding rand v0.5.6 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rusty-variation` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc
[INFO] running `Command { std: "docker" "start" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `rusty-variation` (manifest) generated 1 warning
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.76s
[INFO] [stderr] crater-edition-check: rusty-variation v0.1.0 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:73
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[INFO] [stdout]    |                                        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:71
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:82:42
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:138:77
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   -> Result<R, Box<Error + 'a>>
[INFO] [stdout]     |                                        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:78
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:155:79
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:77:40
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:141:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:65:73
[INFO] [stdout]    |
[INFO] [stdout] 65 | ...                   -> Result<S, Box<Error + 'a>> {
[INFO] [stdout]    |                                        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 65 |                                                        -> Result<S, Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:71
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   -> Result<(T, S), Box<Error + 'a>> {
[INFO] [stdout]    |                                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 |                                                 -> Result<(T, S), Box<dyn Error + 'a>> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:82:42
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn cancel<T>(x: T) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:138:77
[INFO] [stdout]     |
[INFO] [stdout] 138 | ...                   -> Result<R, Box<Error + 'a>>
[INFO] [stdout]     |                                        ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |                                                            -> Result<R, Box<dyn Error + 'a>>
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:148:78
[INFO] [stdout]     |
[INFO] [stdout] 148 | ...                   -> Result<S1, Box<Error + 'a>> {
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 |                                                            -> Result<S1, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:155:79
[INFO] [stdout]     |
[INFO] [stdout] 155 | ...                   -> Result<S2, Box<Error + 'a>> {
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                                                             -> Result<S2, Box<dyn Error + 'a>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:77:40
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<Error>> {
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn close(s: End) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:140:36
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<Error + 'a>>,
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     F: FnOnce(S1) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:141:36
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<Error + 'a>>,
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     G: FnOnce(S2) -> Result<R, Box<dyn Error + 'a>>,
[INFO] [stdout]     |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:221:71
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn simple_calc_server(s: SimpleCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:278:67
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn nice_calc_server(s: NiceCalcServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:420:65
[INFO] [stdout]     |
[INFO] [stdout] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 420 |     fn nice_sum_server(s: NiceSumServer<i32>) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:424:79
[INFO] [stdout]     |
[INFO] [stdout] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 424 |     fn nice_sum_server_accum(s: NiceSumServer<i32>, x: i32) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:438:49
[INFO] [stdout]     |
[INFO] [stdout] 438 | ...                   -> Result<i32, Box<Error>> {
[INFO] [stdout]     |                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 438 |                              -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:198:38
[INFO] [stdout]     |
[INFO] [stdout] 198 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 198 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:238:38
[INFO] [stdout]     |
[INFO] [stdout] 238 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 238 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:296:38
[INFO] [stdout]     |
[INFO] [stdout] 296 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 296 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |                 let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:335:38
[INFO] [stdout]     |
[INFO] [stdout] 335 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 335 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:356:38
[INFO] [stdout]     |
[INFO] [stdout] 356 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 356 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |             let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                     ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |         let (other_thread1, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                  -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:377:38
[INFO] [stdout]     |
[INFO] [stdout] 377 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 377 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:393:39
[INFO] [stdout]     |
[INFO] [stdout] 393 |         assert!(|| -> Result<i32, Box<Error>> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 393 |         assert!(|| -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:396:54
[INFO] [stdout]     |
[INFO] [stdout] 396 |             let f = move |x: i32| -> Result<i32, Box<Error>> {
[INFO] [stdout]     |                                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 396 |             let f = move |x: i32| -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |                 let s = select!(SumOp::More, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 446 |                 let s = select!(SumOp::Done, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |         let (other_thread, s) = fork_with_thread_id!(nice_sum_server);
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:464:38
[INFO] [stdout]     |
[INFO] [stdout] 464 |         assert!(|| -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 464 |         assert!(|| -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:487:30
[INFO] [stdout]     |
[INFO] [stdout] 487 |         || -> Result<(), Box<Error>> {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 487 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:501:30
[INFO] [stdout]     |
[INFO] [stdout] 501 |         || -> Result<(), Box<Error>> {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 501 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.01s
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:112:42
[INFO] [stdout]     |
[INFO] [stdout] 112 |                   Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:517:30
[INFO] [stdout]     |
[INFO] [stdout] 517 |         || -> Result<(), Box<Error>> {
[INFO] [stdout]     |                              ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 517 |         || -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/lib.rs (26 fixes)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `--force-warn bare-trait-objects` implied by `--force-warn rust-2021-compatibility`
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |                 let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |             let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                     ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |                 let s = select!(SumOp::More, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 446 |                 let s = select!(SumOp::Done, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.50s
[INFO] [stderr] crater-edition-check: rusty-variation v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking rusty-variation v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |               let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 201 | |                 let s = send((), s)?;
[INFO] [stdout] 202 | |                 close(s)
[INFO] [stdout] 203 | |             });
[INFO] [stdout]     | |______________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |                 let s: SimpleCalcClient<i32> = fork!(simple_calc_server);
[INFO] [stdout]     |                                                ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |                 let s: NiceCalcClient<i32> = fork!(nice_calc_server);
[INFO] [stdout]     |                                              ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |                 let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |           let (other_thread, s) = fork_with_thread_id!(
[INFO] [stdout]     |  _________________________________-
[INFO] [stdout] 354 | |             move |s: NiceCalcServer<i32>| {cancel(s)});
[INFO] [stdout]     | |______________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |             let s = select!(CalcOp::Add, s)?;
[INFO] [stdout]     |                     ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |         let (other_thread1, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                  -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |           let (other_thread2, u) = fork_with_thread_id!(
[INFO] [stdout]     |  __________________________________-
[INFO] [stdout] 375 | |             move |u: Recv<NiceCalcClient<i32>, End>| {cancel(u)});
[INFO] [stdout]     | |_________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |         let (other_thread, s) = fork_with_thread_id!(nice_calc_server);
[INFO] [stdout]     |                                 -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |                 let s = select!(CalcOp::Neg, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |                 let s = select!(SumOp::More, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 446 |                 let s = select!(SumOp::Done, s)?;
[INFO] [stdout]     |                         ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `select` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:97:42
[INFO] [stdout]     |
[INFO] [stdout]  97 |                 Err(e) => panic!("{}", e.description()),
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |         let (other_thread, s) = fork_with_thread_id!(nice_sum_server);
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `fork_with_thread_id` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 479 | |             loop {
[INFO] [stdout] 480 | |                 // Let's trick the reachability checker
[INFO] [stdout] 481 | |                 if false { break; }
[INFO] [stdout] ...   |
[INFO] [stdout] 484 | |             Ok(())
[INFO] [stdout] 485 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |           let s = fork!(move |s: Send<(), End>| {
[INFO] [stdout]     |  _________________-
[INFO] [stdout] 497 | |             mem::forget(s);
[INFO] [stdout] 498 | |             Ok(())
[INFO] [stdout] 499 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:107:47
[INFO] [stdout]     |
[INFO] [stdout] 107 |               let r = (move || -> Result<_, Box<Error>> {
[INFO] [stdout]     |                                                 ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |           let r2 = fork!(move |s2: Send<(), End>| {
[INFO] [stdout]     |  __________________-
[INFO] [stdout] 512 | |             let (x, End) = recv(r1)?;
[INFO] [stdout] 513 | |             let End = send(x, s2)?;
[INFO] [stdout] 514 | |             Ok(())
[INFO] [stdout] 515 | |         });
[INFO] [stdout]     | |__________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `fork_with_thread_id` which comes from the expansion of the macro `fork` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rusty-variation` (lib test) due to 12 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc", kill_on_drop: false }`
[INFO] [stdout] 16ee302eea2c7230cfde842f987d61eadc70d0392dad6e522113a04508b38dbc
